package base.util.lib;

import java.util.regex.Pattern;

import org.apache.commons.lang.StringUtils;

/**
 * 过滤HTML标签
 */
public class FilterHTML {
	/**
	 * 过滤HTML标签
	 * @param htlstring 含有HTML的标签
	 * @return
	 */
	public static String filterHtml(String htlstring){
		String result = "";//过滤后最后返回的结果
		java.util.regex.Pattern p_script; 
        java.util.regex.Matcher m_script; 
        java.util.regex.Pattern p_style; 
        java.util.regex.Matcher m_style; 
        java.util.regex.Pattern p_html; 
        java.util.regex.Matcher m_html; 
        try { 
            String regEx_script = "<[\\s]*?script[^>]*?>[\\s\\S]*?<[\\s]*?\\/[\\s]*?script[\\s]*?>"; //定义script的正则表达式{或<script[^>]*?>[\\s\\S]*?<\\/script> } 
            String regEx_style = "<[\\s]*?style[^>]*?>[\\s\\S]*?<[\\s]*?\\/[\\s]*?style[\\s]*?>"; //定义style的正则表达式{或<style[^>]*?>[\\s\\S]*?<\\/style> } 
            String regEx_html = "<[^>]+>"; //定义HTML标签的正则表达式 
            String regnbsp = "&nbsp;";//定义空格
           
            p_script = Pattern.compile(regEx_script,Pattern.CASE_INSENSITIVE); 
            m_script = p_script.matcher(htlstring); 
            htlstring = m_script.replaceAll(""); //过滤script标签 

            p_style = Pattern.compile(regEx_style,Pattern.CASE_INSENSITIVE); 
            m_style = p_style.matcher(htlstring); 
            htlstring = m_style.replaceAll(""); //过滤style标签 
           
            p_html = Pattern.compile(regEx_html,Pattern.CASE_INSENSITIVE); 
            m_html = p_html.matcher(htlstring); 
            htlstring = m_html.replaceAll(""); //过滤html标签 
           
            p_html = Pattern.compile(regnbsp,Pattern.CASE_INSENSITIVE); 
            m_html = p_html.matcher(htlstring); 
            htlstring = m_html.replaceAll(""); //过滤&nbsp;标签 
            
            result = htlstring; 
           
        }catch(Exception e) { 
        	System.err.println("Html2Text: " + e.getMessage()); 
        } 
        return result;
	}
	
	/**
	 * 过滤双引号和单引号
	 * @param htmlstr
	 * @return
	 */
	public static String filterQuots(String htmlstr){
		if(StringUtils.isNotEmpty(htmlstr)){
			htmlstr = htmlstr.replace("'", "\\'");
			htmlstr = htmlstr.replace("\"", "\\\"");
			return htmlstr;
		}else{
			return null;
		}
	}
	public static void main(String[] args) {
		String test = "sdjosjfosjofjsofjsoj'dsohodsho\"hdsdhosh'dhsohdoshdoshdo";
		test = filterQuots(test);
		System.out.println(test);
	}
}
